package org.jeecg.modules.wms.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 采购入库VO
 * @Author: jeecg-boot
 * @Date:   2023-07-17
 * @Version: V1.0
 */
@Data
@ApiModel(value="采购入库数据", description="采购入库数据")
public class WmsPurchaseInboundVO implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @ApiModelProperty(value = "采购单ID")
    private String purchaseOrderId;
    
    @ApiModelProperty(value = "仓库ID")
    private String warehouseId;
    
    @ApiModelProperty(value = "库位ID")
    private String locationId;
    
    @ApiModelProperty(value = "批次号")
    private String batchNo;
    
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "实际入库时间")
    private Date actualInboundTime;
    
    @ApiModelProperty(value = "入库凭证")
    private String inboundVoucher;
    
    @ApiModelProperty(value = "备注")
    private String remark;
    
    @ApiModelProperty(value = "总入库数量")
    private BigDecimal totalActualQuantity;
    
    @ApiModelProperty(value = "总成本")
    private BigDecimal totalCost;
    
    @ApiModelProperty(value = "入库明细")
    private List<WmsPurchaseInboundDetailVO> detailList;
    
    @Data
    public static class WmsPurchaseInboundDetailVO implements Serializable {
        private static final long serialVersionUID = 1L;
        
        @ApiModelProperty(value = "采购单明细ID")
        private String purchaseDetailId;
        
        @ApiModelProperty(value = "物料编码")
        private String materialCode;
        
        @ApiModelProperty(value = "物料名称")
        private String materialName;
        
        @ApiModelProperty(value = "物料类型")
        private Integer materialType;
        
        @ApiModelProperty(value = "规格型号")
        private String specification;
        
        @ApiModelProperty(value = "单位")
        private String unit;
        
        @ApiModelProperty(value = "入库数量")
        private BigDecimal quantity;
        
        @ApiModelProperty(value = "单价")
        private BigDecimal unitPrice;
        
        @ApiModelProperty(value = "金额")
        private BigDecimal amount;
    }
} 